package util;

import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;

/**
 * 路径工具类
 *
 * @author wanglei
 * @date 2021/6/9
 */
public class PathUtil {

    /** 
     * 获取maven项目根目录。就是和pom.xml同级的目录
     * 
     * @date 2022/3/1
     *  */
    public static String getUserDir(){
        return System.getProperty("user.dir");
    }

    /**
     * 获取项目根目录
     * <p>
     * 如果已打成jar包，则返回jar包所在目录
     * 如果未打成jar，则返回target所在目录
     *
     * @author wanglei
     * @date 2021/6/9
     */
    public static String getRootPath() throws UnsupportedEncodingException {
        // 项目的编译文件的根目录
        String path = URLDecoder.decode(PathUtil.class.getResource("/").getPath(), String.valueOf(StandardCharsets.UTF_8));
        if (path.startsWith("file:")) {
            int i = path.indexOf(".jar!");
            path = path.substring(0, i);
            path = path.replaceFirst("file:", "");
        }
        // 项目所在的目录
        return new File(path).getParentFile().getAbsolutePath();
    }

    /**
     * 获取class 目录
     *
     * @date 2022/2/27
     * */
    public static String getRootClassPath() {
        String rootClassPath;
        try {
            String path = PathUtil.class.getClassLoader().getResource("").toURI().getPath();
            rootClassPath = new File(path).getAbsolutePath();
        } catch (Exception e) {
            String path = PathUtil.class.getClassLoader().getResource("").getPath();
            rootClassPath = new File(path).getAbsolutePath();
        }
        return rootClassPath;
    }

}
